Skip to content

feat: Add Collector Home page#447

Open
justin212407 wants to merge 14 commits into
open-telemetry:mainfrom
justin212407:collector-page
Open

feat: Add Collector Home page#447
justin212407 wants to merge 14 commits into
open-telemetry:mainfrom
justin212407:collector-page

Conversation

@justin212407
Copy link
Copy Markdown

Summary:

This PR introduces a fully implemented OpenTelemetry Collector landing page and separates the Collector component explorer into its own dedicated route.

Changes:

Collector Landing Page

  • Replaced the previous Collector placeholder page with a Java Agent-style landing experience
  • Added:
    • PageContainer
    • BackButton
    • Gradient page title and subtitle
    • CollectorExploreLanding

CollectorExploreLanding

Added a new landing component featuring:

  • Hero section with “Explore Components” CTA
  • Component type cards with counts sourced from /data/collector/index.json
  • Distribution cards for:
    • Core
    • Contrib
  • Quick stats summary
  • External resource links
  • Loading and error states

Routing Updates

Updated routing behavior so that:

  • /collector

    • Renders the new Collector landing page
  • /collector/components

    • Renders the component explorer
  • /collector/components/:version

    • Renders the component explorer for a specific version
  • /collector/components/:version/:id

    • Renders component detail pages

Filter Support

Added query parameter support for component filtering:

/collector/components?type=receiver
/collector/components?distribution=core

Screenshots:

Screencast.From.2026-05-11.23-46-47.mp4

Tests:

  • Added tests for the Collector landing page
  • Updated Collector page shell tests

Verification:

Successfully ran:

bun run typecheck
bun run test -- src/features/collector

@justin212407 justin212407 requested review from a team as code owners May 11, 2026 12:57
@linux-foundation-easycla
Copy link
Copy Markdown

linux-foundation-easycla Bot commented May 11, 2026

CLA Signed

The committers listed above are authorized under a signed CLA.

  • ✅ login: justin212407 / name: Justin Charles (a5141a5)
  • ✅ login: justin212407 / name: justin212407 (e675abc)

@netlify
Copy link
Copy Markdown

netlify Bot commented May 11, 2026

Deploy Preview for otel-ecosystem-explorer ready!

Name Link
🔨 Latest commit 23d4064
🔍 Latest deploy log https://app.netlify.com/projects/otel-ecosystem-explorer/deploys/6a0d8ba6f7a18000088f4edf
😎 Deploy Preview https://deploy-preview-447--otel-ecosystem-explorer.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

justin212407 and others added 2 commits May 11, 2026 23:34
Signed-off-by: justin212407 <charlesjustin2124@gmail.com>
Comment thread ecosystem-explorer/src/App.tsx Outdated
Comment thread ecosystem-explorer/src/App.tsx Outdated
</Routes>
</Suspense>
</ErrorBoundary>
)}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stray )} with no matching opening, looks like a leftover from removing the {isEnabled("JAVA_CONFIG_BUILDER") && ( block. Either drop this line or restore the gated block above it.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I missed this out while resolving the merge conflicts. Fixed it.

Comment thread ecosystem-explorer/src/App.tsx Outdated
justin212407 and others added 7 commits May 13, 2026 02:36
Signed-off-by: justin212407 <charlesjustin2124@gmail.com>
Signed-off-by: justin212407 <charlesjustin2124@gmail.com>
Signed-off-by: justin212407 <charlesjustin2124@gmail.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a Collector landing page and splits the Collector component explorer into a dedicated route.

Changes:

  • Introduces CollectorExploreLanding with stats, cards, CTA links, resources, loading, and error states.
  • Moves component browsing into CollectorComponentsPage with type/distribution query filters.
  • Updates routing so /collector is the landing page and /collector/components... serves explorer/detail routes.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
ecosystem-explorer/src/features/collector/components/collector-explore-landing.tsx Adds Collector landing UI and data loading.
ecosystem-explorer/src/features/collector/components/collector-explore-landing.test.tsx Adds landing page tests.
ecosystem-explorer/src/features/collector/collector-page.tsx Replaces explorer shell with Collector landing page shell.
ecosystem-explorer/src/features/collector/collector-page.test.tsx Updates Collector page shell test.
ecosystem-explorer/src/features/collector/collector-components-page.tsx Adds dedicated component explorer route/page.
ecosystem-explorer/src/App.tsx Registers Collector landing, component explorer, and detail routes.
Comments suppressed due to low confidence (1)

ecosystem-explorer/src/features/collector/collector-components-page.tsx:290

  • These card links no longer match CollectorDetailPage: the route passes version/id, but collector-detail-page.tsx still reads distribution/name params and the version from the query string. As a result, clicking any component opens the detail page with empty distribution/name and shows the error state instead of loading the component.
              filteredComponents.map((comp) => (
                <Link
                  key={comp.id}
                  to={`/collector/components/${currentVersion}/${comp.id}`}

Comment thread ecosystem-explorer/src/App.tsx Outdated
Comment on lines +79 to +83
return (
<BrowserRouter>
<div className="bg-background flex min-h-screen flex-col">
<Header />
<main className="flex-1 pt-16">
Comment on lines +195 to +206
async function loadCollectorLandingStats(): Promise<CollectorLandingStats> {
const [indexResponse, versionData] = await Promise.all([
fetch("/data/collector/index.json"),
loadVersions(),
]);

if (!indexResponse.ok) {
throw new Error(`Collector index request failed with ${indexResponse.status}.`);
}

const payload: unknown = await indexResponse.json();
const components = readCollectorComponents(payload);
Comment on lines +383 to +384
export function CollectorComponentsPage() {
const { version: urlVersion } = useParams<{ version: string }>();
<CollectorPageInner />
)}
</div>
<CollectorExploreLanding />
}, [components, distributionFilter, searchQuery, typeFilter]);

const handleVersionChange = (val: string) => {
navigate(`/collector/components/${val}`);
@vitorvasc
Copy link
Copy Markdown
Member

Hi @justin212407, quick follow up - did you have a chance to look at the results from Copilot's review?

@justin212407
Copy link
Copy Markdown
Author

Hi @justin212407, quick follow up - did you have a chance to look at the results from Copilot's review?

Yes I am sorry i am working on making those changes, was a bit preoccupied with some other work, will make the fixes and push the changes soon

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants